(function($){
	$.fn.extend({
		tyslide:function(opts){
			var defaults={
				boxh:300,//轮播的高度
				w:700,//图片宽度
				h:300,//图片高度
				isShow:true,//是否显示控制按钮
				isShowBtn:true,//是否显示左右按钮
				controltop:10,//控制器按钮上下偏移距离 
				controlsW:48,//控制按钮宽度
				controlsH:6,//控制按钮高度
				radius:0,//圆角度数
				controlsColor:"#ff6600",//普通控制按钮的颜色
				controlsCurrentColor:"#00ff00",//当前控制按钮的颜色
				isShowNum:false //是否显示数字
			};
			
			var prams=$.extend({},defaults,opts);//用opts里面的属性去覆盖defaults里面的属性，最后放到空对象{}里面，prams就是合并之后的对象
			
			$(this).each(function(index,item){//此处循环是因为选择器可能选择了页面上多个轮播
				//item代表当前这个轮播的盒子 
				var boxwidth=prams.w;//视窗盒子的宽度
				var boxheight=prams.h;//视窗盒子的高度
				var boxsount=$(item).find(".innerwrapper>li").length;//获取li的个数，是在拷贝节点之前获取的
				
				$(item).css({"width":boxwidth,"height":prams.boxh});//修改轮播最外层盒子的宽度和高度
				$(item).find(".innerwrapper").css({"left":-boxwidth,"height":boxheight});//修改innerwrapper初始位置的坐标
				$(item).find(".innerwrapper>li").css({"width":boxwidth,"height":boxheight,"padding":"0","display":"block"});//修改li的宽度和高度
				$(item).find("img").css({"width":boxwidth,"height":boxheight});//修改图片的宽度和高度
				
				$(item).find(".btnleft").css({"opacity":"0.1"});//设置按钮的透明度
				$(item).find(".btnright").css({"opacity":"0.1"});//设置按钮的透明度
				
				var btntop=(boxheight-50)/2; 
				$(item).find(".btnleft").css({"top":btntop});
				$(item).find(".btnright").css({"top":btntop});
				
				var w1=(boxsount+2)*boxwidth;//此宽度是innerwrapper的宽度
				$(item).find(".innerwrapper").css({"width":w1+"px"});
				
				var liRightMargin=parseInt($(item).find(".controls li").css("margin-right"));
				var w2=boxsount*(prams.controlsW+liRightMargin);//此宽度是controls的宽度
				var left2=((boxwidth-w2)/2);  //计算的控制按钮的x坐标
				$(item).find(".controls").css({"width":w2+"px","position":"absolute","height":prams.controlsH,"left":left2,"bottom":prams.controltop,"background-color":"transparent"});
				var isShowNum=prams.isShowNum;
				if(isShowNum)
				{
					$(item).find(".controls>li").css({"width":prams.controlsW,"height":prams.controlsH,"border-radius":prams.radius,"padding":"0","display":"block","border":"0"});
				}
				else
				{
					$(item).find(".controls>li").text("").css({"width":prams.controlsW,"height":prams.controlsH,"border-radius":prams.radius,"padding":"0","display":"block","border":"0"});
				}
				
				//默认设置控制按钮的颜色
				$(item).find(".controls>li").css({"background-color":prams.controlsColor});
				//默认对第一个设置为当前按钮的颜色
				$(item).find(".controls>li").eq(0).css({"background-color":prams.controlsCurrentColor});
				
				var lifirst=$(item).find(".innerwrapper>li:first").clone();//克隆第一个li
				var lilast=$(item).find(".innerwrapper>li:last").clone();//克隆最后一个li
				lifirst.appendTo($(item).find(".innerwrapper"));
				lilast.prependTo($(item).find(".innerwrapper"));
				var k=1;//表示当前显示的盒子的索引
				
				function playppt()
				{
					if(k>boxsount+1)
					{
						k=1;
					}
					
					if(k<0)
					{
						k=boxsount;
					}
					
					var leftx=-k*boxwidth;//计算坐标 
					//console.log(k,leftx);
					var indextemp=k-1;
					if(k==(boxsount+1))//因为装图片的盒子有6个，控制器的盒子只有4个，当大盒子索引为5的时候  控制器的索引改为0
					{
						indextemp=0;
					}
					$(item).find(".controls>li").removeClass("current").eq(indextemp).addClass("current");
					$(item).find(".controls>li").css({"background-color":prams.controlsColor}).eq(indextemp).css({"background-color":prams.controlsCurrentColor});
					
					$(item).find(".innerwrapper").animate({"left":leftx},function(){
						//回调函数：动画执行完毕之后执行此处的逻辑代码
						if(leftx==-boxwidth*(boxsount+1))
						{
							$(item).find(".innerwrapper").css({"left":-boxwidth+"px"});//将第二个盒子（索引=1）移动到当前的视窗里
							k=1;//设置了盒子的位置之后，盒子的索引也要相应的改变
							//console.log("执行完毕");
						}
						if(leftx==0)
						{
							var posx=-boxwidth*boxsount;
							$(item).find(".innerwrapper").css({"left":posx+"px"});//将第5个盒子设置到当前的视窗
							//console.log("执行完毕");
							k=boxsount;//改变盒子的索引为boxsount
						}
					});
				}
				
				var timer=setInterval(function(){
					++k;
					playppt();
				},3000);
				
				//注意：此处不能用mouseover和mouseout去做鼠标移动上去和移动开的效果，因为此事件要冒泡。
				$(item).hover(function(){
					clearInterval(timer);//鼠标移动到pptbox盒子上面的时候，清理掉定时器，轮播不再切换
				},function(){
					timer=setInterval(function(){//此处的timer前面就不要去加var了，因为前面已经定义了，再加就重复定义了，就会清理不到
						++k;
						playppt();//鼠标移动开pptbox盒子盒子的时候，从新开始调用定时器 
					},3000);
				});
				
				
				$(item).find(".btnright").click(function(e){
					if(!$(item).find(".innerwrapper").is(":animated"))
					{
						++k;
						playppt();
					}	
					e.stopPropagation();
					e.preventDefault();
					return false;
				});
				
				$(item).find(".btnleft").click(function(e){
					if(!$(item).find(".innerwrapper").is(":animated"))
					{
						--k;
						playppt();
					}
					e.stopPropagation();
					e.preventDefault();
					return false;
				});
				
				$(item).find(".controls>li").click(function(e){
					//点击一个控制按的时候，给他加上当前的样式，把他的同辈的当前样式移除
					$(this).addClass("current").siblings().removeClass("current");
					var index=$(item).find(".controls>li").index(this);
					k=index+1;
					playppt();
					e.stopPropagation();
					e.preventDefault();
					return false;
				});	
				
				
				
				if(prams.isShow)
				{
					$(item).find(".controls").show();
				}
				else
				{
					$(item).find(".controls").hide();
				}
				
				if(prams.isShowBtn)
				{
					$(item).find(".btnleft").show();
					$(item).find(".btnright").show();
				}
				else
				{
					$(item).find(".btnleft").hide();
					$(item).find(".btnright").hide();
				}
				
				$(item).mouseenter(function(){
					if(prams.isShowBtn)
					{
						$(item).find(".btnleft").css({"opacity":"0.6"});
						$(item).find(".btnright").css({"opacity":"0.6"});
					}							
				});
				
				$(item).mouseleave(function(){
					if(prams.isShowBtn)
					{
						$(item).find(".btnleft").css({"opacity":"0.1"});
						$(item).find(".btnright").css({"opacity":"0.1"});
					}							
				});
				
				
			})
		}
	});
})